package com.class05.lambda;

import org.junit.jupiter.api.Test;

import java.util.Comparator;

/**
 * @ClassDescription:
 * @JdkVersion: 17
 * @Author: yxy
 * @Created: 2023/11/28 8:15
 */
public class LambdaTest {
    @Test//语法格式1：无参无返回值
    public void test1() {
        Runnable r1 = new Runnable() {
            @Override
            public void run() {
                System.out.println("hello");
            }
        };
        r1.run();
        Runnable r2 = () -> {
            System.out.println("jjfjjf");
        };
        r2.run();

    }
    @Test
    public void test02(){
//        方式1：
        Comparator<Integer> com1 = new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return Integer.compare(o1,o2);
            }
        };
//        compare比较两个数的大小，
//        第一个数>第二个数 返回值为1
//        第一个数<第二个数 返回值为-1
//        第一个数=第二个数 返回值为0
        int compare = com1.compare(71, 12);
        System.out.println("compare = " + compare);
        System.out.println("============================");
        
//        方式2：lambda表达式的写法
        Comparator<Integer> com2 = (Integer o1, Integer o2) ->{
            return Integer.compare(o1,o2);
        };
        int compare1 = com2.compare(12, 21);
        System.out.println("compare1 = " + compare1);
//        方式3：方法引用
        Comparator<Integer> com3 = Integer::compare;
        int compare2 = com3.compare(1, 2);
        System.out.println("compare2 = " + compare2);


    }



}
